home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / rexmooslib.lha / MOOS / Tests / rexx_dos.rexx < prev    next >
OS/2 REXX Batch file  |  1997-02-03  |  6KB  |  261 lines

  1. /*
  2.  * rexx_dos.library
  3.  *
  4.  * Test file...
  5.  */
  6.  
  7. OPTIONS RESULTS
  8. lib = 'rexxMOOS.library'; IF ~SHOW('L',lib) THEN CALL ADDLIB(lib,100,-30)
  9.  
  10.                                                                               
  11. /*
  12.  *    ReadArgs()
  13.  */
  14. CALL print(4,'#',"ReadArgs(string,template,options)")
  15.  
  16. DROP file
  17. str = "mio tuo suo add"
  18. tpl = "FILE/M,ADD/S,QUIET=Q/S"
  19. CALL print(20,'-','ReadArgs("'str'","'tpl'","opt.")')
  20. IF ReadArgs(str,tpl,"opt.") THEN DO
  21.     SAY "OPT.FILE.COUNT =" opt.file.count
  22.     DO n = 0 FOR opt.file.count
  23.         SAY "OPT.FILE."n "=" opt.file.n
  24.     END
  25.     SAY "OPT.ADD    =" opt.add
  26.     SAY "OPT.QUIET  =" opt.quiet
  27.     END
  28.  
  29. DROP opt.
  30.  
  31. str = "29 12 68 A D"
  32. tpl = "ID/N/M,Append=A/S,Delete=D/S"
  33. CALL print(20,'-','ReadArgs("'str'","'tpl'")')
  34. IF ReadArgs(str,tpl) THEN DO
  35.     SAY "ID.COUNT =" id.count
  36.     DO n = 0 FOR id.count
  37.         SAY "ID."n "  =" id.n
  38.     END
  39.     SAY "APPEND =" append
  40.     SAY "DELETE =" delete
  41.     END
  42.  
  43. DROP id. append delete
  44.  
  45.                                                                               
  46. /*
  47.  *    Info()
  48.  */
  49. CALL print(4,'#',"Info(path,options)")
  50.  
  51. path = "SYS:"
  52. CALL print(20,'-','Info("'path'","ex.")')
  53. IF Info(path,"ex.") THEN DO
  54.     SAY "VolumeName    " ex.VolumeName
  55.     SAY "DateStamp     " ex.DateStamp
  56.     SAY "NumSoftErrors " ex.NumSoftErrors
  57.     SAY "UnitNumber    " ex.UnitNumber
  58.     SAY "DiskState     " ex.DiskState
  59.     SAY "NumBlocks     " ex.NumBlocks
  60.     SAY "NumBlocksUsed " ex.NumBlocksUsed
  61.     SAY "BytesPerBlock " ex.BytesPerBlock
  62.     SAY "DiskType      " ex.DiskType
  63.     SAY "InUse         " ex.InUse
  64.     END
  65.  
  66. DROP ex.
  67.  
  68.                                                                               
  69. /*
  70.  *    Delay()
  71.  */
  72. CALL print(4,'#',"Delay(ticks)")
  73.  
  74. ticks = 100
  75. CALL print(20,'-',"Delay("ticks")")
  76. CALL TIME('r'); CALL Delay(ticks)
  77. SAY ticks "ticks ==" TIME('e') "secs..."
  78.  
  79. CALL print(20,'-',"Delay("ticks")")        /* Now we're sure that the library    */
  80. CALL TIME('r'); CALL Delay(ticks)        /* is loaded in the system            */
  81. SAY ticks "ticks ==" TIME('e') "secs..."
  82.  
  83.                                                                               
  84. /*
  85.  *    SetVar()
  86.  *    GetVar()
  87.  *    DeleteVar()
  88.  */
  89. CALL print(4,'#',"SetVar(name,value,options)")
  90. var = "test"
  91. val = "the variable content..."
  92. CALL print(20,'-','SetVar("'var'",val)')
  93. SAY SetVar(var,val)
  94.  
  95. CALL print(4,'#',"GetVar(name,options)")
  96. CALL print(20,'-','GetVar("language")')
  97. SAY "language ==" GetVar("language")
  98.  
  99. CALL print(20,'-','GetVar("'var'","Exists")')
  100. SAY GetVar(var,"Exists")
  101.  
  102. CALL print(4,'#',"DeleteVar(name,options)")
  103. CALL print(20,'-','DeleteVar("'var'")')
  104. SAY DeleteVar(var)
  105.  
  106.                                                                               
  107. /*
  108.  *    SplitPath()
  109.  */
  110. CALL print(4,'#',"SplitPath(path,options)")
  111.  
  112. dir = "DF0:foo/bar/moos-startup"
  113. CALL print(20,'-',"SplitPath('"dir"')")
  114. SAY SplitPath(dir)
  115.  
  116. CALL print(20,'-',"SplitPath('"dir"','Path')")
  117. SAY SplitPath(dir,"Path")
  118.  
  119. CALL print(20,'-',"SplitPath('"dir"','test.')")
  120. SAY SplitPath(dir,"test.")
  121. SAY "test.DirPart  ==" test.DirPart
  122. SAY "Test.FilePart ==" test.FilePart
  123.  
  124. DROP test.
  125.  
  126.                                                                               
  127. /*
  128.  *    MatchPattern()
  129.  */
  130. CALL print(4,'#',"MatchPattern(pattern,string,options)")
  131.  
  132. CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler")')
  133. SAY MatchPattern("#?Con#?","L:Kingcon-handler")
  134.  
  135. CALL print(20,'-','MatchPattern("#?Con#?","L:Kingcon-handler","Case")')
  136. SAY MatchPattern("#?Con#?","L:Kingcon-handler","Case")
  137.  
  138.                                                                               
  139. /*
  140.  *    AddPart()
  141.  */
  142. CALL print(4,'#',"AddPart(dirname,filename)")
  143.  
  144. dir  = "DF0:"
  145. file = "bar"
  146. CALL print(20,'-',"AddPart("'"'dir'","'file'"'")")
  147. SAY AddPart(dir,file)
  148. dir  = "RAM:foo"
  149. file = "bar"
  150. CALL print(20,'-',"AddPart("'"'dir'","'file'"'")")
  151. SAY AddPart(dir,file)
  152. dir  = "RAM:foo/"
  153. file = "bar/sub_bar"
  154. CALL print(20,'-',"AddPart("'"'dir'","'file'"'")")
  155. SAY AddPart(dir,file)
  156.  
  157.                                                                               
  158. /*
  159.  *    WriteBlock()
  160.  */
  161. CALL print(4,'#',"WriteBlock(file,string,options)")
  162.  
  163. str = "Test string..."
  164. CALL print(20,'-','WriteBlock("T:prova","'str'")')
  165. IF WriteBlock("T:prova",str) THEN DO
  166.     ADDRESS COMMAND 'Type "T:prova"'
  167.     CALL print(20,'-','WriteBlock("T:prova",str,"Append")')
  168.     IF WriteBlock("T:prova",str,"Append") THEN DO
  169.         ADDRESS COMMAND 'Type "T:prova"'
  170.     END
  171.     ADDRESS COMMAND 'Delete "T:prova" QUIET'
  172. END
  173.                                                                               
  174. /*
  175.  *    Examine()
  176.  */
  177. CALL print(4,'#',"Examine(path,options)")
  178.  
  179. pat = "c:List"
  180. CALL print(20,'-','Examine("'pat'","ex.")')
  181. IF Examine(pat,"ex.") THEN DO
  182.     SAY "DiskKey     " ex.DiskKey
  183.     SAY "DirEntryType" ex.DirEntryType
  184.     SAY "FileName    " ex.FileName
  185.     SAY "Protection  " ex.Protection
  186.     SAY "EntryType   " ex.EntryType
  187.     SAY "Size        " ex.Size
  188.     SAY "NumBlocks   " ex.NumBlocks
  189.     SAY "Comment     " ex.Comment
  190.     SAY "WeekDay     " ex.WeekDay
  191.     SAY "Date        " ex.Date
  192.     SAY "Time        " ex.Time
  193.     SAY "OwnerUID    " ex.OwnerUID
  194.     SAY "OwnerGID    " ex.OwnerGID
  195.     END
  196.  
  197. DROP ex.
  198.  
  199.                                                                               
  200. /*
  201.  *    ReadBlock()
  202.  */
  203. CALL print(4,'#',"ReadBlock(file,options)")
  204.  
  205. CALL print(20,'-','ReadBlock("ENV:language")')
  206. SAY "language ==" ReadBlock("ENV:language")
  207.  
  208.                                                                               
  209. /*
  210.  *    ExAll()
  211.  */
  212. CALL print(4,'#',"ExAll(pattern,options)")
  213.  
  214. DROP ex.
  215. pat = "devs:#?.device"
  216. CALL print(20,'-','ExAll("'pat'","ex.")')
  217. IF ExAll(pat,"ex.") THEN
  218.     DO n = 0 FOR ex.count
  219.         SAY "Name" ex.n.Name
  220.     END
  221.  
  222. DROP ex.                /* we need a new, clear stem */
  223. pat = "Libs:rexx#?"        /* the pattern to be examine */
  224. CALL print(20,'-','ExAll("'pat'","ex. Type 3")')
  225. IF ExAll(pat,"ex. Type 3") THEN
  226.     DO n = 0 FOR ex.count
  227.         SAY "Name" ex.n.Name
  228.         SAY "Type" ex.n.Type
  229.         SAY "Size" ex.n.Size
  230.     END
  231.  
  232. DROP ex.
  233. pat = "Libs:req#?"
  234. CALL print(20,'-','ExAll("'pat'","ex. Type 6")')
  235. IF ExAll(pat,"ex. Type 6") THEN
  236.     DO n = 0 FOR ex.count
  237.         SAY "Name" ex.n.Name
  238.         SAY "Type" ex.n.Type
  239.         SAY "Size" ex.n.Size
  240.         SAY "Prot" ex.n.Prot
  241.         SAY "WDay" ex.n.WDay
  242.         SAY "Date" ex.n.Date
  243.         SAY "Time" ex.n.Time
  244.         SAY "Note" ex.n.Note
  245.     END
  246.  
  247. DROP ex.
  248.  
  249.                                                                               
  250.  
  251. ADDRESS COMMAND 'Wait' 2
  252.  
  253. SAY
  254. EXIT 0
  255.  
  256. print: PROCEDURE
  257.     PARSE ARG pos,char,str
  258.     IF char = '#' THEN SAY '0a0a'x
  259.     SAY COPIES(char,pos) || OVERLAY(" "str" ",COPIES(char,78 - pos))
  260.     RETURN
  261.